Update Julia CI job to use libblastrampoline and remove --parallel=false#3136
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## od/resetGlobalScheduler #3136 +/- ##
===========================================================
+ Coverage 73.17% 73.20% +0.02%
===========================================================
Files 430 430
Lines 104034 104154 +120
Branches 16727 16738 +11
===========================================================
+ Hits 76129 76242 +113
- Misses 27629 27636 +7
Partials 276 276 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@filikat this branch now uses HiGHS#latest to run the Julia tests, as well as the tests from jump-dev/MultiObjectiveAlgorithms.jl#211 (not that I can reproduce the segfault there though).
I wonder if it's something like this:
|
|
This is totally possible. In the C api, I don't think that this should happen. The destructor of the static instance of Tomorrow I will check if any of the unit tests creates this exact situation of two separate instances where one is destroyed before the other. If not, I will write such a test and try to verify if the issue is there. |
Ooooooo. HiGHS/highs/interfaces/highs_c_api.cpp Lines 176 to 178 in 04024d7 Based on this scary warning, it seems highly likely that's the cause: HiGHS/highs/interfaces/highs_c_api.h Lines 2494 to 2495 in 04024d7 I may be able to fix this in JuMP, because we explicitly mark that the GC can run during a call to |
|
Added by #2493 There is already The C API should never call |
|
So I think this was probably the cause of the failures in #2998. I should have taken a deeper look, instead of just working around the cause. |
|
I'm fairly happy that |
I agree. Indeed, the cpp functions that run Highs never call |
|
Am I right in thinking that nothing is lost by removing 'resetGlobalScheduler' from the C API method that destroys HiGHS. All we need is a C API method that calls 'resetGlobalScheduler' so that we, and users, can achieve this from C. Something we'll need for CI tests? |
|
There already is such a function, |
I think so. It was added to avoid some valgrind errors when running the minimal C example, but the same can be achieved by calling
The tests in #3141 are passing, so I don't think there's much else to fix. |
|
Let's merge #3141 into |

An attempt to reproduce the segfaults in jump-dev/MultiObjectiveAlgorithms.jl#211, where we can additionally make changes to HiGHS.